home *** CD-ROM | disk | FTP | other *** search
- /**** euclid.c ****/
- /* By Paul Field
- * See !ReadMe file for distribution/modification restrictions
- */
-
- #include "euclid.h"
- #include "euclidswis.h"
- #include "os.h"
-
- #pragma no_check_stack
-
- void euclid_getcolour(unsigned int c, unsigned int *m,
- unsigned int *r, unsigned int *g, unsigned int *b)
- { *m = c>>24;
- *r = c & 0xff;
- *g = (c>>8) & 0xff;
- *b = (c>>16) & 0xff;
- }
-
- void euclid_setname(char *name, const char *cstring)
- { while(*cstring)
- { *name++ = *cstring++;
- }
- *name = '\r';
- }
-
- void euclid_getname(char *cstring, const char *name)
- { while(*name != '\r')
- { *cstring++ = *name++;
- }
- *cstring = NULL;
- }
-
- /**** Main interface functions for euclid module ****/
-
- os_error *euclid_initialise(euclid_initflags flags, euclid_header *structure,
- size_t size, int *version)
- { return(os_swi3r(os_X|Euclid_Initialise, flags, (int)structure, size,
- NULL, NULL, version));
- }
-
-
- os_error *euclid_draw(euclid_drawstyle style, euclid_header *structure,
- int xoffset, int yoffset, const char *camera, void *vduvars,
- BOOL *timedout, euclid_drawinfo **infoblock)
- { return(os_swi6r(os_X|Euclid_Draw, style, (int)structure, xoffset, yoffset,
- (int)camera, (int)vduvars,
- timedout, NULL, (int *)infoblock, NULL, NULL, NULL));
- }
-
-
- os_error *euclid_load(BOOL postprocess, euclid_header *structure, const char *filename)
- { return(os_swi3(os_X|Euclid_Load, postprocess, (int)structure, (int)filename));
- }
-
-
- os_error *euclid_save(euclid_header *structure, const char *filename)
- { return(os_swi3(os_X|Euclid_Save, NULL, (int)structure, (int)filename));
- }
-
-
- os_error *euclid_append(BOOL postprocess, euclid_header *structure,const char *filename)
- { return(os_swi3(os_X|Euclid_Append, postprocess, (int)structure, (int)filename));
- }
-
- os_error *euclid_find(euclid_header *structure, const char *name,
- char **leaf, euclid_transformation **transformation,
- euclid_matrixtransformation **matrix,
- euclid_matrixtransformation **inverse,
- void **entry,
- euclid_group **group)
- { return(os_swi6r(os_X|Euclid_Find, NULL, (int)structure, (int)name, NULL, NULL, NULL,
- (int *)leaf, (int *)transformation, (int *)matrix,
- (int *)inverse, (int *) entry, (int *)group));
- }
-
- os_error *euclid_create(unsigned int children, euclid_header *structure, euclid_id id,
- void *newobject)
- { return(os_swi3r(os_X|Euclid_Create, children, (int)structure, id,
- (int *)newobject, NULL, NULL));
- }
-
- os_error *euclid_destroy(euclid_header *structure, void *object)
- { return(os_swi3(os_X|Euclid_Destroy, NULL, (int)structure, (int)object));
- }
-
- os_error *euclid_insert(unsigned int entry, euclid_header *structure, void *object,
- void *newentry)
- { return(os_swi3r(os_X|Euclid_Insert, entry, (int)structure, (int)object,
- (int *)newentry, NULL, NULL));
- }
-
- os_error *euclid_delete(unsigned int entry, euclid_header *structure, void *object)
- { return(os_swi3(os_X|Euclid_Delete, entry, (int)structure, (int)object));
- }
-
-
- os_error *euclid_getsystemmaterials(euclid_material **materials)
- { return(os_swi1r(os_X|Euclid_MiscOp, 2, (int *)materials));
- }
-
- os_error *euclid_imagesmooth(int reserved)
- { return(os_swi2(os_X|Euclid_MiscOp, 3, reserved));
- }
-
- os_error *euclid_blocksize(euclid_id id, unsigned *headersize, unsigned *variablesize)
- { return(os_swi2r(os_X|Euclid_MiscOp, 4, id, (int *)headersize, (int *)variablesize));
- }
-
- os_error *euclid_ditherpattern(unsigned colour, unsigned *bytes)
- { return(os_swi2r(os_X|Euclid_MiscOp, 5, colour, (int *)bytes, NULL));
- }
-
- os_error *euclid_invalidatepalettecache(void)
- { return(os_swi1(os_X|Euclid_MiscOp, 6));
- }
-
- os_error *euclid_setdrawparams(char depth, char simplicity, char maxrecursion,
- euclid_drawflags flags, fix14 cutoff)
- { return(os_swi3(os_X|Euclid_MiscOp, 7,
- ((char)flags<<24)|(maxrecursion<<16)|(simplicity<<8)|depth, cutoff));
- }
-
-
-
-
- os_error *euclid_closedown(void)
- { return(os_swi0(os_X|Euclid_CloseDown));
- }
-
- os_error *euclid_compress(euclid_compression type, void **data, void **screenbase)
- { return(os_swi3r(os_X|Euclid_Compress, type, (int)*data, (int)*screenbase,
- NULL, (int *)data, (int *)screenbase));
- }
-
- os_error *euclid_expand(euclid_compression type, void **data, void **screenbase)
- { return(os_swi3r(os_X|Euclid_Expand, type, (int)*data, (int)*screenbase,
- NULL, (int *)data, (int *)screenbase));
- }
-